With microprocessors hitting the power wall, alternative architectures are receiving substantial attention. Two factors make FPGAs promising, particularly for high performance computing applications: (i) the potential for thousand-fold parallelism, and (ii) the embedding of control into logic, which enables payload to be delivered every cycle.
In this talk we will describe work in building FPGA-based accelerators for computational biology and bioinformatics. We find that, while there is potential for enormous speedup, achieving it demands both selection of appropriate applications and unusually careful design. Beginning with the applications: these include processing of biological sequences (both comparison and analysis), computations involving of microarray (gene chip) data, modeling of molecular interaction, and molecular dynamics simulations. Although low-precision computations are most amenable to acceleration, we also examine applications that typically use floating point. Success with these applications comes from specific design methods. These methods fall into four broad categories: restructuring applications to make use of a different processor model; taking advantage of fine-grained parallelism in computations and memory access; using non-standard arithmetic types and operations that map well into FPGA fabric; and finally, reconsidering application design issues. The latter include methods for ensuring that applications are flexible, scalable, and at least somewhat portable.